SQL エイリアスは、テーブルまたはテーブル内の列に一時的な名前を付けるために使用されます。
エイリアスは、列名を読みやすくするためによく使用されます。
エイリアスは、現在のリクエストの存続期間中にのみ存在します。
エイリアスは、AS キーワードを使用して作成されます。
SELECT column_name AS alias_name
FROM table_name
SELECT column_name(s)
FROM table_name AS alias_name
以下はテーブル「Customers」(「顧客」) のサンプルです。
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 5021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 5023 | Mexico |
テーブル "Orders" ("Orders") のサンプル:
ProductID | OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
---|---|---|---|---|---|
1 | 10248 | 90 | 5 | 1996-07-04 | 3 |
2 | 10249 | 81 | 6 | 1996-07-05 | 1 |
3 | 10250 | 34 | 4 | 1996-07-08 | 2 |
次の SQL ステートメントは、CustomerID 列用と CustomerName 列用の 2 つのエイリアスを作成します。
Run SQLSELECT CustomerID AS ID, CustomerName AS Customer
FROM Customers
次の SQL ステートメントは 2 つのエイリアスを作成します。1 つは CustomerName 列用で、もう 1 つは ContactName 列用です。
注: エイリアスにスペースが含まれる場合は、二重引用符または角括弧が必要です。
Run SQLSELECT CustomerName AS Customer, ContactName AS 'Contact Person'
FROM Customers
次の SQL ステートメントは、4 つの列 (住所、郵便番号、都市、国) を連結する「Address」 (「住所」) という名前の別名を作成します。
SELECT CustomerName, Address + ', ' + PostalCode + ' ' + City + ', ' + Country AS Address
FROM Customers
上記の SQL ステートメントを MySQL で機能させるには、次を使用します。
Run SQLSELECT CustomerName, CONCAT(Address,', ',PostalCode,', ',City,', ',Country) AS Address
FROM Customers
上記の SQL ステートメントを Oracle で機能させるには、次を使用します。
SELECT CustomerName, (Address || ', ' || PostalCode || ' ' || City || ', ' || Country) AS Address
FROM Customers
次の SQL ステートメントは、CustomerID = 4 (「Around the Horn」) を持つ顧客からのすべての注文を選択します。 テーブル "Customers" と "Orders" を使用し、それぞれテーブル エイリアス "c" と "o" を与えます (ここでは SQL クエリを短くするためにエイリアスを使用しています)。
Run SQLSELECT o.OrderID, o.OrderDate, c.CustomerName
FROM Customers AS c, Orders AS o
WHERE c.CustomerName = 'Around the Horn' AND c.CustomerID = o.CustomerID
次の SQL ステートメントは上記と同じですが、別名がありません。
Run SQLSELECT Orders.OrderID, Orders.OrderDate, Customers.CustomerName
FROM Customers, Orders
WHERE Customers.CustomerName = 'Around the Horn' AND Customers.CustomerID = Orders.CustomerID
エイリアスは次の場合に役立ちます。